//
//  Git.h
//  Source
//
//  Created by Toj on 9/14/21.
//


批量删除分支: '条件'
git branch | grep -E 'release-|branch-taurin|hotfix|VIPCODE-2' | xargs git branch -D


修改分支名:
git branch -m oldName newName


一、git 如何修改最近一次的commit信息
1. git commit --amend
2. 进入vim操作界面之后, 点击字母键 i 然后进入INSERT模式，然后对commit信息进行修改，然后ESC 然后 :wq 保存退出
3. 然后执行 git log 会发现最近的一次commit信息被修改成功了
/***
修改上次commit 文案/ 在上次commit 里追加内容
git add .
git commit --amend
直接键入：i 修改上次commit的文案
按下 Esc键退出编辑模式，再输入 :wq 回车退出并保存修改
 */

二、git 修改已经提交到git远程仓库的commit信息

1. 首先回撤到上一次提交，不修改本次提交的改动 git reset --soft HEAD~1
2. 重新做一次提交 git commit -m “重新提交commit信息”
3. 强推本地分支到远程仓库 git push -f origin master
4. 查看远程仓库中的是否已经修改commit信息

三、修改任意一次的commit信息
可以用到使用git rebase -i
参考网址：https://juejin.cn/post/6844903600976576519

// 修改分支名字推送到远程
1、执行命令git checkout br_rename_old切换到br_rename_old分支，如果已经在这个分支下，可以不执行此步骤
2、执行命令git pull origin br_rename_old将代码更新到和远程仓库一致
3、执行命令git branch -m br_rename_old br_rename_new将本地仓库的br_rename_old的名称修改为br_rename_new
4、执行命令git push origin --delete br_rename_old将远程分支br_rename_old删除
5、执行命令git push --set-upstream origin br_rename_new将本地分支push到远程仓库

参考网址：https://blog.csdn.net/weixin_45120915/article/details/111463933



1，撤销git commit

1.1  已经git push，想修改，如果重新commit会生成新的commit-id，导致提交记录混乱。

git commit --amend
    执行完amend指令，进入文件编辑器，可以修改上次commit的注释，也可以直接退出。对代码做修改，然后重新操作commit和push，此时后面一个commit会将前一次的commit覆盖掉，在提交记录只显示最后一次的commit。

1.2  还没有git push，想撤销commit

git reset --soft  HEAD^

HEAD^是最后一次提交前的版本号, HEAD^参数表示要回滚到最后一次提交前的版本,
    即撤销最后1次commit, HEAD^参数等同于HEAD~1.
如果想撤销最后2次commit, 则用HEAD~2.
--soft 表示仅撤回commit操作，代码的修改仍保留.

回滚类型参数：

--soft

撤销commit，不撤销git add，不删除工作空间的代码修改。

--mixed

撤销commit，撤销git add，不删除工作空间的代码修改。

--hard

撤销commit，撤销git add，删除工作空间的代码修改。

git reset HEAD^  和 git reset --mixed HEAD^   是等同的。

git reset --hard  和 git reset --hard HEAD^是等同的。
1.3  已经git push，想撤销某一个commit（非merge）

首先查找版本号：

git log
然后回滚修改(只是删除工作空间的代码修改)：

git revert -n 版本号
最后提交修改并push到远程仓库：

git commit -m 注释

git push
注意，这样只会撤销一个commit对应的代码改动，不影响该commit后面提交的代码改动，并且不会删掉被回滚的commit的记录。

1.4  已经git push，想将代码回滚到某个版本，并且删掉该版本后面的所有代码改动以及commit记录。

首先查找版本号：

git log
然后撤销目标版本号以后的所有修改(删掉commit记录、删除工作空间的代码修改)：

git reset --hard 目标版本号
最后push到远程仓库：

git push -f
注意，该操作会彻底丢失目标版本以后的所有commit记录，是很危险的，是无后悔药可用的，珍爱生命，不要git push -f。

2，git commit -am

https://blog.csdn.net/Aifore/article/details/80314909?spm=1001.2101.3001.6661.1&utm_medium=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-80314909-blog-115733082.pc_relevant_paycolumn_v3&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-80314909-blog-115733082.pc_relevant_paycolumn_v3&utm_relevant_index=1

3,分支重命名

1. 本地分支重命名

Git branch -m oldbranchname newbranchname

2.远程分支重命名

.如果修改远程分支，只需要将本地分支重命名为新分支名称，然后删除远程分支，再把本地分支上传就可以了

4，cherry pick 代码转移

http://www.ruanyifeng.com/blog/2020/04/git-cherry-pick.html

5, git rebase

1，合并多个未push的commit

2，合并分支。https://juejin.cn/post/6844904037452627981

3，git pull 变基 https://zhuanlan.zhihu.com/p/374920618
